//package top.yangbuyi.vo;
//
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.annotation.TableField;
//import com.baomidou.mybatisplus.annotation.TableId;
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.fasterxml.jackson.annotation.JsonInclude;
//import io.swagger.annotations.ApiModelProperty;
//import lombok.AllArgsConstructor;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//import top.yangbuyi.constants.Constants;
//import top.yangbuyi.domain.Menu;
//import top.yangbuyi.mapper.MenuMapper;
//
//import java.util.*;
//
//
///**
// * @description: 杨不易网站:www.yangbuyi.top
// * @program: yangbuyiopenHis2020
// * @ClassName: MenuTreeNode
// * @create: 2020-09-02 15:05
// * @author: yangbuyi
// * @since： JDK1.8
// * @MenuTreeNode: 构造前端动态路由$
// **/
//
//@Data
//@NoArgsConstructor
//@AllArgsConstructor
//public class MenuTreeNode {
//
//	  /**
//	   * 菜单ID
//	   */
//	  private Long menuId;
//
//	  /**
//	   * 父菜单ID
//	   */
//	  private Long parentId;
//
//	  /**
//	   * 菜单名称
//	   */
//	  private String name;
//	  private String menuName;
//
//
//	  /**
//	   * 路由地址
//	   */
//	  private String path;
//	  private String redirect;
//	  private String alwaysShow;
//	  private String component;
//	  private Map meta;
//	  /*
//	  *   path: 'menu',
//        component: () => import('@/views/error-page/404'),
//        name: '/system/menu',
//        meta: {
//          title: '菜单管理',
//          icon: 'bug'
//        }
//	  * */
//
//	  /**
//	   * 子菜单
//	   */
//	  private List<Map<String, Object>> child = new ArrayList<>();
//
//
//	  public MenuTreeNode(Long menuId, Long parentId, String menuName, String path) {
//			this.menuId = menuId;
//			this.parentId = parentId;
//			this.menuName = menuName;
//			this.path = path;
//	  }
//
//	  /**
//	   * 构造树
//	   */
//	  public static class MenuTreeNodeBuild {
//			/**
//			 * 逻辑思路:
//			 * * 传入菜单 和 菜单顶级 pid
//			 * * 进行循环判断 传入进来的菜单 pid 是否等于 topPid
//			 * * 等于则为顶级菜单进行添加到集合当中
//			 * * 二次循环 遍历子节点
//			 * * 判断 父pid  是否等于  主键id
//			 * * 等于则为当前菜单的子节点
//			 *
//			 * @param nodes 所有菜单
//			 * @param topid 菜单顶部id
//			 * @return 处理完毕的菜单树
//			 */
//			public static List<MenuTreeNode> build(List<MenuTreeNode> nodes, Integer topid) {
//				  List<MenuTreeNode> list = new ArrayList<>();
//				  // 循环菜单列
//				  for (MenuTreeNode n1 : nodes) {
//						// 判断是否为顶部菜单
//						if (n1.getParentId().equals(topid)) {
//							  List<MenuTreeNode> menuTreeNodes = new ArrayList<>();
//
//							  n1.setComponent("Layout");
//							  n1.setName(n1.getPath());
//							  Map<String, Object> map1 = new HashMap<>();
//							  Map<String, Object> icon = new HashMap<>();
//							  icon.put("title", n1.getMenuName());
//							  icon.put("icon", "lock");
//							  map1.put("meta", icon);
//							  n1.setMeta(map1);
//							  menuTreeNodes.add(n1);
//						}
//						List<Map<String, Object>> chiledList = new ArrayList<>();
//						List<MenuTreeNode> menuTreeNodes = new ArrayList<>();
//						List<Menu> menuByParentId = getMenuByParentId(n1.getMenuId());
//						System.err.println(menuByParentId);
//						//组装开始
//						for (Menu menu : menuByParentId) {
//							  Map<String, Object> childMap = new HashMap<>();
//							  childMap.put("path", menu.getPath());
//							  childMap.put("component", menu.getPath());
//							  childMap.put("name", menu.getPath());
//							  Map<String, Object> childIcon = new HashMap<>();
//							  //儿子图标
//							  childIcon.put("title", menu.getMenuName());
//							  childIcon.put("icon", "lock");
//							  childMap.put("meta", childIcon);
//							  chiledList.add(childMap);
//
//						}
//						n1.setChild(chiledList);
//						menuTreeNodes.add(n1);
//						list = menuTreeNodes;
//
//				  }
//				  return list;
//			}
//	  }
//
//
//}
